package com.ww.springboot.boot.algorithm.string;

import com.ww.springboot.boot.algorithm.plzh.Combination;
import org.springframework.util.LinkedMultiValueMap;
import org.springframework.util.MultiValueMap;

import java.util.*;

/**
 * 最长公共子序列
 * <p>
 * 解题思路：
 * 1.获取较短字符串的所有子序列 根据长度进行排序
 * 2.一一遍历子序列判断是否是较长字符串的子序列 是 直接返回 否继续直到遍历完 则返回0
 * <p>
 * <p>
 * 给定两个字符串 text1 和 text2，返回这两个字符串的最长 公共子序列 的长度。如果不存在 公共子序列 ，返回 0 。
 * <p>
 * 一个字符串的 子序列 是指这样一个新的字符串：它是由原字符串在不改变字符的相对顺序的情况下删除某些字符（也可以不删除任何字符）后组成的新字符串。
 * <p>
 * 例如，"ace" 是 "abcde" 的子序列，但 "aec" 不是 "abcde" 的子序列。
 * 两个字符串的 公共子序列 是这两个字符串所共同拥有的子序列。
 * <p>
 * 来源：力扣（LeetCode）
 * 链接：https://leetcode-cn.com/problems/longest-common-subsequence
 * 著作权归领扣网络所有。商业转载请联系官方授权，非商业转载请注明出处。
 *
 * @author wanwei
 * @since 2021-04-03 09:09
 */
public class LongestCommonSubsequenceDemo {

    private static MultiValueMap<Integer, List<Integer>> map = new LinkedMultiValueMap<>();


    public static void main(String[] args) {
        System.out.println(Combination.permutationAll(5));
    }


    private static List<String> getSon(String str) {

        List<String> strings = new ArrayList<>();

        for (int i = str.length(); i > 0; i++) {


        }


        return null;
    }



}
